(source_file "main.swift"
  (import_decl range=[main.swift:8:1 - line:8:8] 'Foundation')
  (func_decl range=[main.swift:10:1 - line:17:1] "makeIncrementer()" interface type='() -> (() -> Int)' access=internal
    (parameter_list range=[main.swift:10:21 - line:10:22])
    (result
      (type_tuple
        (type_function
          (type_tuple)
          (type_ident
            (component id='Int' bind=Swift.(file).Int)))))
    (brace_stmt range=[main.swift:10:37 - line:17:1]
      (pattern_binding_decl range=[main.swift:11:5 - line:11:14]
        (pattern_named type='Int' 'a')
        Original init:
        (integer_literal_expr type='Int' location=main.swift:11:14 range=[main.swift:11:14 - line:11:14] value=10 builtin_initializer=Swift.(file).Int.init(_builtinIntegerLiteral:) initializer=**NULL**)
        Processed init:
        (integer_literal_expr type='Int' location=main.swift:11:14 range=[main.swift:11:14 - line:11:14] value=10 builtin_initializer=Swift.(file).Int.init(_builtinIntegerLiteral:) initializer=**NULL**))

      (var_decl range=[main.swift:11:10 - line:11:10] "a" type='Int' interface type='Int' access=private readImpl=stored writeImpl=stored readWriteImpl=stored)

      (func_decl range=[main.swift:12:5 - line:15:5] "incrementer()" interface type='() -> Int' access=private captures=(a<direct>)
        (parameter_list range=[main.swift:12:21 - line:12:22])
        (result
          (type_ident
            (component id='Int' bind=Swift.(file).Int)))
        (brace_stmt range=[main.swift:12:31 - line:15:5]
          (assign_expr type='()' location=main.swift:13:11 range=[main.swift:13:9 - line:13:15]
            (declref_expr type='@lvalue Int' location=main.swift:13:9 range=[main.swift:13:9 - line:13:9] decl=main.(file).makeIncrementer().a@main.swift:11:10 function_ref=unapplied)
            (binary_expr type='Int' location=main.swift:13:14 range=[main.swift:13:13 - line:13:15] nothrow
              (dot_syntax_call_expr implicit type='(Int, Int) -> Int' location=main.swift:13:14 range=[main.swift:13:14 - line:13:14] nothrow
                (declref_expr type='(Int.Type) -> (Int, Int) -> Int' location=main.swift:13:14 range=[main.swift:13:14 - line:13:14] decl=Swift.(file).Int extension.+ function_ref=single)
                (type_expr implicit type='Int.Type' location=main.swift:13:14 range=[main.swift:13:14 - line:13:14] typerepr='Int'))
              (tuple_expr implicit type='(Int, Int)' location=main.swift:13:13 range=[main.swift:13:13 - line:13:15]
                (load_expr implicit type='Int' location=main.swift:13:13 range=[main.swift:13:13 - line:13:13]
                  (declref_expr type='@lvalue Int' location=main.swift:13:13 range=[main.swift:13:13 - line:13:13] decl=main.(file).makeIncrementer().a@main.swift:11:10 function_ref=unapplied))
                (integer_literal_expr type='Int' location=main.swift:13:15 range=[main.swift:13:15 - line:13:15] value=1 builtin_initializer=Swift.(file).Int.init(_builtinIntegerLiteral:) initializer=**NULL**))))
          (return_stmt range=[main.swift:14:9 - line:14:16]
            (load_expr implicit type='Int' location=main.swift:14:16 range=[main.swift:14:16 - line:14:16]
              (declref_expr type='@lvalue Int' location=main.swift:14:16 range=[main.swift:14:16 - line:14:16] decl=main.(file).makeIncrementer().a@main.swift:11:10 function_ref=unapplied)))))

      (return_stmt range=[main.swift:16:5 - line:16:12]
        (declref_expr type='() -> Int' location=main.swift:16:12 range=[main.swift:16:12 - line:16:12] decl=main.(file).makeIncrementer().incrementer()@main.swift:12:10 function_ref=unapplied))))
  (top_level_code_decl range=[main.swift:19:1 - line:19:31]
    (brace_stmt implicit range=[main.swift:19:1 - line:19:31]
      (pattern_binding_decl range=[main.swift:19:1 - line:19:31]
        (pattern_named type='(() -> Int)' 'makeInc')
        Original init:
        (call_expr type='(() -> Int)' location=main.swift:19:15 range=[main.swift:19:15 - line:19:31] nothrow arg_labels=
          (declref_expr type='() -> (() -> Int)' location=main.swift:19:15 range=[main.swift:19:15 - line:19:15] decl=main.(file).makeIncrementer()@main.swift:10:6 function_ref=single)
          (tuple_expr type='()' location=main.swift:19:30 range=[main.swift:19:30 - line:19:31]))
        Processed init:
        (call_expr type='(() -> Int)' location=main.swift:19:15 range=[main.swift:19:15 - line:19:31] nothrow arg_labels=
          (declref_expr type='() -> (() -> Int)' location=main.swift:19:15 range=[main.swift:19:15 - line:19:15] decl=main.(file).makeIncrementer()@main.swift:10:6 function_ref=single)
          (tuple_expr type='()' location=main.swift:19:30 range=[main.swift:19:30 - line:19:31])))
))
  (var_decl range=[main.swift:19:5 - line:19:5] "makeInc" type='(() -> Int)' interface type='(() -> Int)' access=internal readImpl=stored writeImpl=stored readWriteImpl=stored)
  (top_level_code_decl range=[main.swift:20:1 - line:20:16]
    (brace_stmt implicit range=[main.swift:20:1 - line:20:16]
      (call_expr type='()' location=main.swift:20:1 range=[main.swift:20:1 - line:20:16] nothrow arg_labels=_:
        (declref_expr type='(Any..., String, String) -> ()' location=main.swift:20:1 range=[main.swift:20:1 - line:20:1] decl=Swift.(file).print(_:separator:terminator:) function_ref=single)
        (tuple_expr type='(Any..., separator: String, terminator: String)' location=main.swift:20:6 range=[main.swift:20:6 - line:20:16] names='',separator,terminator
          (vararg_expansion_expr implicit type='[Any]' location=main.swift:20:7 range=[main.swift:20:7 - line:20:15]
            (array_expr implicit type='[Any]' location=main.swift:20:7 range=[main.swift:20:7 - line:20:15] initializer=**NULL**
              (erasure_expr implicit type='Any' location=main.swift:20:7 range=[main.swift:20:7 - line:20:15]
                (call_expr type='Int' location=main.swift:20:7 range=[main.swift:20:7 - line:20:15] nothrow arg_labels=
                  (load_expr implicit type='(() -> Int)' location=main.swift:20:7 range=[main.swift:20:7 - line:20:7]
                    (declref_expr type='@lvalue (() -> Int)' location=main.swift:20:7 range=[main.swift:20:7 - line:20:7] decl=main.(file).makeInc@main.swift:19:5 function_ref=single))
                  (tuple_expr type='()' location=main.swift:20:14 range=[main.swift:20:14 - line:20:15])))))
          (default_argument_expr implicit type='String' location=main.swift:20:6 range=[main.swift:20:6 - line:20:6] default_args_owner=Swift.(file).print(_:separator:terminator:) param=1)
          (default_argument_expr implicit type='String' location=main.swift:20:6 range=[main.swift:20:6 - line:20:6] default_args_owner=Swift.(file).print(_:separator:terminator:) param=2)))))
  (top_level_code_decl range=[main.swift:21:1 - line:21:16]
    (brace_stmt implicit range=[main.swift:21:1 - line:21:16]
      (call_expr type='()' location=main.swift:21:1 range=[main.swift:21:1 - line:21:16] nothrow arg_labels=_:
        (declref_expr type='(Any..., String, String) -> ()' location=main.swift:21:1 range=[main.swift:21:1 - line:21:1] decl=Swift.(file).print(_:separator:terminator:) function_ref=single)
        (tuple_expr type='(Any..., separator: String, terminator: String)' location=main.swift:21:6 range=[main.swift:21:6 - line:21:16] names='',separator,terminator
          (vararg_expansion_expr implicit type='[Any]' location=main.swift:21:7 range=[main.swift:21:7 - line:21:15]
            (array_expr implicit type='[Any]' location=main.swift:21:7 range=[main.swift:21:7 - line:21:15] initializer=**NULL**
              (erasure_expr implicit type='Any' location=main.swift:21:7 range=[main.swift:21:7 - line:21:15]
                (call_expr type='Int' location=main.swift:21:7 range=[main.swift:21:7 - line:21:15] nothrow arg_labels=
                  (load_expr implicit type='(() -> Int)' location=main.swift:21:7 range=[main.swift:21:7 - line:21:7]
                    (declref_expr type='@lvalue (() -> Int)' location=main.swift:21:7 range=[main.swift:21:7 - line:21:7] decl=main.(file).makeInc@main.swift:19:5 function_ref=single))
                  (tuple_expr type='()' location=main.swift:21:14 range=[main.swift:21:14 - line:21:15])))))
          (default_argument_expr implicit type='String' location=main.swift:21:6 range=[main.swift:21:6 - line:21:6] default_args_owner=Swift.(file).print(_:separator:terminator:) param=1)
          (default_argument_expr implicit type='String' location=main.swift:21:6 range=[main.swift:21:6 - line:21:6] default_args_owner=Swift.(file).print(_:separator:terminator:) param=2)))))
  (top_level_code_decl range=[main.swift:22:1 - line:22:16]
    (brace_stmt implicit range=[main.swift:22:1 - line:22:16]
      (call_expr type='()' location=main.swift:22:1 range=[main.swift:22:1 - line:22:16] nothrow arg_labels=_:
        (declref_expr type='(Any..., String, String) -> ()' location=main.swift:22:1 range=[main.swift:22:1 - line:22:1] decl=Swift.(file).print(_:separator:terminator:) function_ref=single)
        (tuple_expr type='(Any..., separator: String, terminator: String)' location=main.swift:22:6 range=[main.swift:22:6 - line:22:16] names='',separator,terminator
          (vararg_expansion_expr implicit type='[Any]' location=main.swift:22:7 range=[main.swift:22:7 - line:22:15]
            (array_expr implicit type='[Any]' location=main.swift:22:7 range=[main.swift:22:7 - line:22:15] initializer=**NULL**
              (erasure_expr implicit type='Any' location=main.swift:22:7 range=[main.swift:22:7 - line:22:15]
                (call_expr type='Int' location=main.swift:22:7 range=[main.swift:22:7 - line:22:15] nothrow arg_labels=
                  (load_expr implicit type='(() -> Int)' location=main.swift:22:7 range=[main.swift:22:7 - line:22:7]
                    (declref_expr type='@lvalue (() -> Int)' location=main.swift:22:7 range=[main.swift:22:7 - line:22:7] decl=main.(file).makeInc@main.swift:19:5 function_ref=single))
                  (tuple_expr type='()' location=main.swift:22:14 range=[main.swift:22:14 - line:22:15])))))
          (default_argument_expr implicit type='String' location=main.swift:22:6 range=[main.swift:22:6 - line:22:6] default_args_owner=Swift.(file).print(_:separator:terminator:) param=1)
          (default_argument_expr implicit type='String' location=main.swift:22:6 range=[main.swift:22:6 - line:22:6] default_args_owner=Swift.(file).print(_:separator:terminator:) param=2)))))
  (top_level_code_decl range=[main.swift:24:1 - line:24:26]
    (brace_stmt implicit range=[main.swift:24:1 - line:24:26]
      (call_expr type='()' location=main.swift:24:1 range=[main.swift:24:1 - line:24:26] nothrow arg_labels=_:
        (declref_expr type='(Any..., String, String) -> ()' location=main.swift:24:1 range=[main.swift:24:1 - line:24:1] decl=Swift.(file).print(_:separator:terminator:) function_ref=single)
        (tuple_expr type='(Any..., separator: String, terminator: String)' location=main.swift:24:6 range=[main.swift:24:6 - line:24:26] names='',separator,terminator
          (vararg_expansion_expr implicit type='[Any]' location=main.swift:24:7 range=[main.swift:24:7 - line:24:25]
            (array_expr implicit type='[Any]' location=main.swift:24:7 range=[main.swift:24:7 - line:24:25] initializer=**NULL**
              (erasure_expr implicit type='Any' location=main.swift:24:7 range=[main.swift:24:7 - line:24:25]
                (call_expr type='Int' location=main.swift:24:7 range=[main.swift:24:7 - line:24:25] nothrow arg_labels=
                  (call_expr type='(() -> Int)' location=main.swift:24:7 range=[main.swift:24:7 - line:24:23] nothrow arg_labels=
                    (declref_expr type='() -> (() -> Int)' location=main.swift:24:7 range=[main.swift:24:7 - line:24:7] decl=main.(file).makeIncrementer()@main.swift:10:6 function_ref=double)
                    (tuple_expr type='()' location=main.swift:24:22 range=[main.swift:24:22 - line:24:23]))
                  (tuple_expr type='()' location=main.swift:24:24 range=[main.swift:24:24 - line:24:25])))))
          (default_argument_expr implicit type='String' location=main.swift:24:6 range=[main.swift:24:6 - line:24:6] default_args_owner=Swift.(file).print(_:separator:terminator:) param=1)
          (default_argument_expr implicit type='String' location=main.swift:24:6 range=[main.swift:24:6 - line:24:6] default_args_owner=Swift.(file).print(_:separator:terminator:) param=2)))))
  (top_level_code_decl range=[main.swift:25:1 - line:25:26]
    (brace_stmt implicit range=[main.swift:25:1 - line:25:26]
      (call_expr type='()' location=main.swift:25:1 range=[main.swift:25:1 - line:25:26] nothrow arg_labels=_:
        (declref_expr type='(Any..., String, String) -> ()' location=main.swift:25:1 range=[main.swift:25:1 - line:25:1] decl=Swift.(file).print(_:separator:terminator:) function_ref=single)
        (tuple_expr type='(Any..., separator: String, terminator: String)' location=main.swift:25:6 range=[main.swift:25:6 - line:25:26] names='',separator,terminator
          (vararg_expansion_expr implicit type='[Any]' location=main.swift:25:7 range=[main.swift:25:7 - line:25:25]
            (array_expr implicit type='[Any]' location=main.swift:25:7 range=[main.swift:25:7 - line:25:25] initializer=**NULL**
              (erasure_expr implicit type='Any' location=main.swift:25:7 range=[main.swift:25:7 - line:25:25]
                (call_expr type='Int' location=main.swift:25:7 range=[main.swift:25:7 - line:25:25] nothrow arg_labels=
                  (call_expr type='(() -> Int)' location=main.swift:25:7 range=[main.swift:25:7 - line:25:23] nothrow arg_labels=
                    (declref_expr type='() -> (() -> Int)' location=main.swift:25:7 range=[main.swift:25:7 - line:25:7] decl=main.(file).makeIncrementer()@main.swift:10:6 function_ref=double)
                    (tuple_expr type='()' location=main.swift:25:22 range=[main.swift:25:22 - line:25:23]))
                  (tuple_expr type='()' location=main.swift:25:24 range=[main.swift:25:24 - line:25:25])))))
          (default_argument_expr implicit type='String' location=main.swift:25:6 range=[main.swift:25:6 - line:25:6] default_args_owner=Swift.(file).print(_:separator:terminator:) param=1)
          (default_argument_expr implicit type='String' location=main.swift:25:6 range=[main.swift:25:6 - line:25:6] default_args_owner=Swift.(file).print(_:separator:terminator:) param=2)))))
  (top_level_code_decl range=[main.swift:26:1 - line:26:26]
    (brace_stmt implicit range=[main.swift:26:1 - line:26:26]
      (call_expr type='()' location=main.swift:26:1 range=[main.swift:26:1 - line:26:26] nothrow arg_labels=_:
        (declref_expr type='(Any..., String, String) -> ()' location=main.swift:26:1 range=[main.swift:26:1 - line:26:1] decl=Swift.(file).print(_:separator:terminator:) function_ref=single)
        (tuple_expr type='(Any..., separator: String, terminator: String)' location=main.swift:26:6 range=[main.swift:26:6 - line:26:26] names='',separator,terminator
          (vararg_expansion_expr implicit type='[Any]' location=main.swift:26:7 range=[main.swift:26:7 - line:26:25]
            (array_expr implicit type='[Any]' location=main.swift:26:7 range=[main.swift:26:7 - line:26:25] initializer=**NULL**
              (erasure_expr implicit type='Any' location=main.swift:26:7 range=[main.swift:26:7 - line:26:25]
                (call_expr type='Int' location=main.swift:26:7 range=[main.swift:26:7 - line:26:25] nothrow arg_labels=
                  (call_expr type='(() -> Int)' location=main.swift:26:7 range=[main.swift:26:7 - line:26:23] nothrow arg_labels=
                    (declref_expr type='() -> (() -> Int)' location=main.swift:26:7 range=[main.swift:26:7 - line:26:7] decl=main.(file).makeIncrementer()@main.swift:10:6 function_ref=double)
                    (tuple_expr type='()' location=main.swift:26:22 range=[main.swift:26:22 - line:26:23]))
                  (tuple_expr type='()' location=main.swift:26:24 range=[main.swift:26:24 - line:26:25])))))
          (default_argument_expr implicit type='String' location=main.swift:26:6 range=[main.swift:26:6 - line:26:6] default_args_owner=Swift.(file).print(_:separator:terminator:) param=1)
          (default_argument_expr implicit type='String' location=main.swift:26:6 range=[main.swift:26:6 - line:26:6] default_args_owner=Swift.(file).print(_:separator:terminator:) param=2))))))